//#include <iostream>
//
//using namespace std;
//
//typedef unsigned long long LL;
//const int N = 1e5 + 10;
//const LL INF = (1ull << 63) - 1; 
//
//LL h;
//LL a[5], n = 3, m = N;
//LL dist[N];
//
//int gcd(int a, int b)
//{
//	return b == 0 ? a : gcd(b, a % b);
//}
//
//void circle()
//{
//	for(int i = 1; i <= m; i++)
//		dist[i] = INF;
//	dist[0] = 0;
//	
//	for(int i = 1; i <= n; i++)
//	{
//		if(a[i] == m) continue;
//		int d = gcd(a[i], m);
//		for(int j = 0; j < d; j++)
//			for(int x = j, c = 0; c < 2; c += (x == j))
//			{
//				int y = (x + a[i]) % m;
//				dist[y] = min(dist[y], dist[x] + a[i]);
//				x = y;
//			} 
//	}
//}
//
//int main()
//{
//	cin >> h;
//	h--;
//	
//	for(int i = 1; i <= n; i++)
//	{
//		cin >> a[i];
//		m = min(a[i], m);
//	}
//	
//	circle();
//	
//	LL ret = 0;
//	for(int i = 0; i < m; i++)
//		if(h >= dist[i])
//			ret += (h - dist[i]) / m + 1;
//	cout << ret << endl;;
//	
//	return 0;
//} 
